//Circle.h - Class Circle

#ifndef _CIRCLE_H_
#define _CIRCLE_H_

#include <iostream>
#include "Point.h"
#include "Shape.h"
#include "Screen.h"

//class CollisionsHandler;
#include "CollisionsHandler.h"

#include <cmath>

using namespace std;

class Circle: public Shape
{
private:
	//data members
	int m_rad;	//radius value

public:
	Circle(const Point& point, int rad);	//constructor

	//seters
	void set(int x, int y, int rad);	//sets a circle by x and y values
	void set(const Point& point, int rad);	//sets a circle by a point

	//geters
	int getRad() const { return m_rad; };
	Point getPoint() const { return m_point; };

	//virtual
	virtual void draw(char ch, bool isFullFill) const; //virtual draw for shape to screen
	virtual void drawToBuffer(char ch, bool isFullFill, bool isSplit, Screen& scr) const; //virtual draw for shape to buffer
	virtual bool isPointInside(const Point& point) const;	//vurtual checks if a shpe contains a point
	virtual bool isInScreenBoarder() const; //virtual chackes if the shape is in the screen boarders
	virtual void handleCollisions(Shape* shape); //virtual handels collisions between a shape and the other shapes
};

#endif
